import pandas as pd

# 1. 读取文件内容并打印
excel_file = pd.ExcelFile('student.xlsx')
sheet_name = excel_file.sheet_names[0]
df = excel_file.parse(sheet_name)
print("===== 1. 文件内容 =====")
print(df.to_csv(sep='\t', na_rep='nan'))

# 2. 按性别统计学生人数并打印
gender_count = df['性别'].value_counts()
print("\n===== 2. 按性别统计人数 =====")
print(gender_count)

# 3. 按年龄段统计学生人数并打印
bins = [0, 18, 25, 35, 50, 100]
labels = ['未成年人（<18）', '青年（18-25）', '壮年（25-35）', '中年（35-50）', '老年（≥50）']
df['年龄段'] = pd.cut(df['年龄'], bins=bins, labels=labels, right=False)
age_group_count = df['年龄段'].value_counts().sort_index()
print("\n===== 3. 按年龄段统计人数 =====")
print(age_group_count)

# 4. 按地区（外省按省份，海南省按市县）统计学生人数并打印
def get_region(address):
    if address.startswith('海南省'):
        # 提取海南省的市县
        city_county = address.split('海南省')[1].split('市')[0] + '市' if '市' in address.split('海南省')[1] else address.split('海南省')[1].split('县')[0] + '县'
        return city_county
    else:
        # 提取外省的省份
        province = address.split('省')[0] + '省' if '省' in address else address.split('自治区')[0] + '自治区' if '自治区' in address else address.split('市')[0] + '市'
        return province

df['地区'] = df['家庭地址'].apply(get_region)
region_count = df['地区'].value_counts()
print("\n===== 4. 按地区统计人数 =====")
print(region_count)